define(['ko','uiRegistry','mage/translate','../template/renderer','jquery'],function(ko,registry,$t,renderer,$){'use strict';function applyComponents(el,bindingContext,promise,component){promise.resolve();component=bindingContext.createChildContext(component);ko.utils.extend(component,{$t:$t});ko.utils.arrayForEach(ko.virtualElements.childNodes(el),ko.cleanNode);ko.applyBindingsToDescendants(component,el);} ko.bindingHandlers.scope={init:function(){return{controlsDescendantBindings:true};},update:function(el,valueAccessor,allBindings,viewModel,bindingContext){var component=valueAccessor(),promise=$.Deferred(),apply=applyComponents.bind(this,el,bindingContext,promise);if(typeof component==='string'){registry.get(component,apply);}else if(typeof component==='function'){component(apply);}}};ko.virtualElements.allowedBindings.scope=true;renderer.addNode('scope').addAttribute('scope',{name:'ko-scope'});});